import request from "@/utils/request";
import type {Result} from "@/types/common/Result";
import type {CircleVO} from "@/types/vo/CircleVO";
import type {MomentDTO} from "@/types/dto/MomentDTO";
import type {MomentQuery} from "@/types/query/MomentQuery";
import type {PageResult} from "@/types/common/PageResult";
import type {MomentVO} from "@/types/vo/MomentVO";
import type {CommentDTO} from "@/types/dto/CommentDTO";
import type {CommentVO} from "@/types/vo/CommentVO";


/**
 * 查询圈子列表
 * @returns
 */
export function getCircleListService() {
  return request.get<Result<CircleVO[]>>(`/circle/list`);
}


/**
 * 分页查询动态
 * @param {object} params 动态
 * @param {number} params.circleId 圈子ID
 * @param {string} params.content 问题内容
 * @param {string} params.createdBy 创建者
 * @param {boolean} params.isAsc 是否升序
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页记录数
 * @param {string} params.sortBy 排序字段
 * @returns
 */
export function getMomentListService(params:MomentQuery) {
  return request.post<Result<PageResult<MomentVO>>>(`/moment/page`, params);
}
/**
 * 查询我的动态
 * @param {object} params 动态
 * @param {number} params.circleId 圈子ID
 * @param {string} params.content 问题内容
 * @param {string} params.createdBy 创建者
 * @param {boolean} params.isAsc 是否升序
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页记录数
 * @param {string} params.sortBy 排序字段
 * @returns
 */
export function getMyMomentListService(params:MomentQuery) {
  return request.post<Result<PageResult<MomentVO>>>(`/moment/myPage`, params);
}

/**
 * 新增动态
 * @param {object} params 动态
 * @param {number} params.circleId 圈子ID
 * @param {string} params.content 问题内容
 * @param {number} params.id 问题ID
 * @param {array} params.picUrls 问题图片内容
 * @returns
 */
export function addMomentService (params: MomentDTO) {
  return request.post<Result<any>>(`/moment/save`, params);
}

// 获取评论树
export function getCommentTreeService(params: CommentDTO) {
  return request.post<Result<CommentVO[]>>(`/comment-reply/list`, params)
}

/**
 * 新增评论回复
 * @param {object} params 动态回复
 * @param {string} params.content 内容
 * @param {number} params.id 评论ID
 * @param {number} params.momentId 动态ID
 * @param {array} params.picUrls 图片内容
 * @param {number} params.replyType 回复类型 1评论 2回复
 * @param {number} params.toId 评论目标id
 * @returns
 */
export function addCommentService(params:CommentDTO) {
  return request.post<Result<any>>(`/comment-reply/save`, params);
}

/**
 * 删除动态
 * @param {string} id id
 * @returns
 */
export function deleteMomentService(id: number){
  return request.delete<Result<any>>(`/moment/delete/${id}`);
}


